
/*
	测试button_drv.c驱动程序
	按键是输入设备会产生数据

	读取按键的数据
		键码 'A'
		键值 按下 或 松开
		

*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>

int main(int argc, char **argv)
{
	int fd;
	int ret;
	struct input_event event;
	if (argc != 2) {
		printf("Usage: %s  /dev/input/eventx \n", argv[0]);
		exit(1);
	}
	
	fd = open(argv[1], O_RDWR); //打开文件,默认是阻塞方式打开
	if (fd < 0) {
		perror("open");
		exit(1);
	}
	while (1) {
		ret = read(fd, &event, sizeof(event)); //设备无数据阻塞
		if (ret < 0) {
			perror("read");
			exit(1);
		}
		if (event.code ==KEY_A) {
			if (event.value) {
				printf("power key pressed\n");
			} else {
				printf("power key release\n");
			}
		}
		
	}	
	
	close(fd);
	printf("main exit\n");
	return 0;
}
